#ifndef FOOD_H
#define FOOD_H

#include "Container.h"
#include <memory>
#include <vector>

// 食物类型枚举
enum FoodType
{
    FOOD_NORMAL,     // 苹果 - 增加1长度
    FOOD_BUFF,       // 金苹果 - 增加3长度
    FOOD_DEBUFF,     // 毒苹果 - 减少2长度
    FOOD_PEPPER,     // 辣椒
    FOOD_ICE_CREAM,  // 冰激凌
    Donut,           // 甜甜圈
    Cake,            // 蛋糕
    Milk,            // 牛奶
    Candied_hawthorn // 糖葫芦
};

class Food
{
private:
    std::unique_ptr<Container> foodContainer; // 食物容器
    FoodType type;                            // 食物类型
    int x, y;                                 // 食物位置
    int size;                                 // 食物大小

public:
    Food(Container *parent, int x, int y, int size, FoodType type = FOOD_NORMAL);
    ~Food() = default;

    // 获取食物信息
    int getX() const { return x; }
    int getY() const { return y; }
    int getSize() const { return size; }
    FoodType getType() const { return type; }
    Container *getContainer() const { return foodContainer.get(); }

    // 设置食物类型（用于动态改变）
    void setType(FoodType newType);

    // 渲染食物（根据类型使用不同图片）
    void renderFood();
};

#endif